package com.example.jeudupendu;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;

import android.content.Context;
import android.content.res.AssetManager;

public class Model {
	/*Variables privées*/
	private String mon_fichier;
	private AssetManager am;
	private InputStream is;
	/*Constructeur*/
	public Model(String monfichier, Context Am){
		mon_fichier=monfichier;
		am=Am.getAssets();
	}
	/*Getter et setter*/
	public String getMon_fichier() {
		return mon_fichier;
	}
	public void setMon_fichier(String mom_fichier) {
		this.mon_fichier = mom_fichier;
	}
	public AssetManager getAm() {
		return am;
	}
	public void setAm(AssetManager am) {
		this.am = am;
	}
	public InputStream getIs() {
		return is;
	}
	public void setIs(InputStream is) {
		this.is = is;
	}

	/*Méthodes publiques*/
	public boolean ouvrir_fichier(){
		boolean vretour=true;
		is= null;
		try {
			is= am.open(mon_fichier); 
		} 
		catch(IOException ex) 
		{
			System.out.println("Erreur dans l'ouverture du fichier");
			vretour=false;
		}
		return vretour;
	}
	public boolean fermer_fichier(){
		boolean vretour=true;
		try {
			is.close();
		} catch (IOException e) {
			System.out.println("Erreur lors de la fermeture du fichier");
			vretour=false;
		}
		return vretour;
	}
	public ArrayList<String> lire_fichier(){
		ArrayList<String> fichier= new ArrayList<>();
		BufferedReader reader;
		reader = new BufferedReader(new InputStreamReader(is));
		String line="";
		try { // 1ère lecture
			line = reader.readLine();
			if(line!=null){
				fichier.add(line);
			}
		} catch (IOException e) {
			System.out.println("Erreur lors de la première lecture");
		}
		while(line != null){
			try 
			{
				line = reader.readLine();
				if(line!=null){
					fichier.add(line);
				}
			}
			catch (IOException e) {
				System.out.println("Erreur dans la lecture des lignes du fichier");
			}
		}

		return fichier;
	}
}
